<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
		<html>
		<head>
		<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
		<title>Object</title>
		<META HTTP-EQUIV="EXPIRES" CONTENT=0>
		<link rel="stylesheet" href="../../../../docs.css">
		</head>
		<body>
		
<br>
<h1>Io Reference</h1>
<br><br><br>
<br><br><br>
<a class='column' href='../../index.html'>Core</a>
&nbsp;&nbsp;<font color=#ccc>/</font>&nbsp;&nbsp;
<a class='column' href='../index.html'>Core</a>
&nbsp;&nbsp;<font color=#ccc>/</font>&nbsp;&nbsp;
<b>Object</b>
<br><br><br>
<br><br><br>
<table border=0 cellspacing=0 style="margin-left:8em; width:40em; line-height:1.2em;">
<tr>
<td align=right></td>
<td></td>
<td>An Object is a key/value dictionary with string keys and values of any type.
The prototype Object contains a clone slot that is a CFunction that creates new objects.
When cloned, an Object will call its init slot (with no arguments).
</td></tr>
<tr><td colspan=3>&nbsp;</td></tr>
<tr><td colspan=3>&nbsp;</td></tr>
<tr><td colspan=3>&nbsp;</td></tr>
<tr>
<td align=right>
</td>
<td></td>
<td>
<hr align=left color=#ddd height=1>
<br><br>
<a name="Object-!="></a><b>
!=(aValue)
</b>
<p>
<div class=slotDescription>
Returns true the receiver is not equal to aValue, false otherwise.
</div>
<a name="Object-"></a><b>
(expression)
</b>
<p>
<div class=slotDescription>
The '' method evaluates the argument and returns the result.
</div>
<a name="Object--"></a><b>
-(aNumber)
</b>
<p>
<div class=slotDescription>
Returns the negative version of aNumber.
	Raises an exception if argument is not a number.
</div>
<a name="Object-.."></a><b>
..(arg)
</b>
<p>
<div class=slotDescription>
.. is an alias for: method(arg, self asString append(arg asString))
</div>
<a name="Object-&lt;"></a><b>
&lt;(expression)
</b>
<p>
<div class=slotDescription>
Evaluates argument and returns self if self is less or Nil if not.
</div>
<a name="Object-&lt;="></a><b>
&lt;=(expression)
</b>
<p>
<div class=slotDescription>
Evaluates argument and returns self if self is less
	than or equal to it, or Nil if not.
</div>
<a name="Object-=="></a><b>
==(aValue)
</b>
<p>
<div class=slotDescription>
Returns true if receiver and aValue are equal, false otherwise.
</div>
<a name="Object-&gt;"></a><b>
&gt;(expression)
</b>
<p>
<div class=slotDescription>
Evaluates argument and returns self if self is greater than it, or Nil if not.
</div>
<a name="Object-&gt;="></a><b>
&gt;=(expression)
</b>
<p>
<div class=slotDescription>
Evaluates argument and returns self if self is greater
	than or equal to it, or Nil if not.
</div>
<a name="Object-?"></a><b>
?(aMessage)
</b>
<p>
<div class=slotDescription>
description: Sends the message aMessage to the receiver if it can respond to it. Example:
	<pre>
	MyObject test // performs test
	MyObject ?test // performs test if MyObject has a slot named test
	</pre>
	The search for the slot only follows the receivers proto chain.
</div>
<a name="Object-@"></a><b>
@
</b>
<p>
<div class=slotDescription>
Sends asynchronous message to an object, returns a FutureProxy.
	<br/>
	Caller coroutine is paused when proxy is accessed (i.e. message is sent)
	till result is ready. Proxy will become an actual result when it is ready.
	<br/>
	See IoGuide for more information.
	<br/>
	Usage: obj @someMethod(a, b, c)
</div>
<a name="Object-@@"></a><b>
@@
</b>
<p>
<div class=slotDescription>
Same as Object @, but returns nil instead of FutureProxy.
	<br/>
	Might be useful in a command line or as a last expression in a block/method when
	you don't want to return a future.
</div>
<a name="Object-NullCharacter"></a><b>
NullCharacter
</b>
<p>
<div class=slotDescription>
A sequence with a single zero byte.
</div>
<a name="Object-actorProcessQueue"></a><b>
actorProcessQueue
</b>
<p>
<div class=slotDescription>
Processes each message in a queue, yielding between each message.
</div>
<a name="Object-actorRun"></a><b>
actorRun
</b>
<p>
<div class=slotDescription>
Starts actor mode if not started already. Basically, sets actorProcessQueue for later execution.
</div>
<a name="Object-addTrait"></a><b>
addTrait
</b>
<p>
<div class=slotDescription>
Takes another object, whose slots will be copied into the receiver. Optionally takes a second argument, a Map object containing string -> string pairs, holding conflicting slot names and names to rename them to. I.e., if you have two objects A and B, both have a slot named foo, you issue A addTrait(B, Map clone atPut("foo", "newFoo")) the value of B foo will be placed in A newFoo.
</div>
<a name="Object-ancestorWithSlot"></a><b>
ancestorWithSlot(slotName)
</b>
<p>
<div class=slotDescription>
Returns the first ancestor of the receiver that contains
	a slot of the specified name or Nil if none is found.
</div>
<a name="Object-ancestors"></a><b>
ancestors
</b>
<p>
<div class=slotDescription>
Returns a list of all of the receiver's ancestors as found by recursively following the protos links.
</div>
<a name="Object-and"></a><b>
and(arg)
</b>
<p>
<div class=slotDescription>
Evaluates argument and returns the result.
</div>
<a name="Object-appendProto"></a><b>
appendProto(anObject)
</b>
<p>
<div class=slotDescription>
Appends anObject to the receiver's proto list. Returns self.
</div>
<a name="Object-apropos"></a><b>
apropos
</b>
<p>
<div class=slotDescription>
Prints out <tt>Protos Core</tt> slot descriptions.
</div>
<a name="Object-argIsActivationRecord"></a><b>
argIsActivationRecord
</b>
<p>
<div class=slotDescription>
Note: seems to be an obsolete method.
</div>
<a name="Object-argIsCall"></a><b>
argIsCall(arg)
</b>
<p>
<div class=slotDescription>
Returns true if arg is an activation context (i.e. Call object)
	<br/>
	Note: this is used internally in one place only (Coroutine callStack).
	Refactoring should be considered.
</div>
<a name="Object-asSimpleString"></a><b>
asSimpleString
</b>
<p>
<div class=slotDescription>
Returns <type>_<uniqueHexId> string.
</div>
<a name="Object-asString"></a><b>
asString
</b>
<p>
<div class=slotDescription>
Same as <tt>slotSummary</tt>.
</div>
<a name="Object-become"></a><b>
become(anotherObject)
</b>
<p>
<div class=slotDescription>
Replaces receiver with <tt>anotherObject</tt> and returns self.
	Useful for implementing transparent proxies. See also <tt>FutureProxy</tt> and <tt>Object @</tt>.
	<br/>
	Note: primitives cannot become new values.
</div>
<a name="Object-block"></a><b>
block(args..., body)
</b>
<p>
<div class=slotDescription>
Creates a block and binds it to the sender context (i.e. lexical context).
	In other words, block locals' proto is sender's locals.
	<tt>args</tt> is a list of formal arguments (can be empty). <br/>
	<tt>body</tt> is evaluated in the context of Locals object.<br/>
	See also <tt>Object method</tt>.
	<br/>
	<pre>
	Io> block(x, x*2) scope == thisContext
  ==> true
	</pre>
</div>
<a name="Object-break"></a><b>
break(optionalReturnValue)
</b>
<p>
<div class=slotDescription>
Break the current loop, if any.
</div>
<a name="Object-checkMemory"></a><b>
checkMemory()
</b>
<p>
<div class=slotDescription>
Accesses memory in the IoObjectData struct that should be accessible.  Should cause a memory access
	exception if memory is corrupt.
</div>
<a name="Object-clone"></a><b>
clone
</b>
<p>
<div class=slotDescription>
Returns a clone of the receiver.
</div>
<a name="Object-cloneWithoutInit"></a><b>
cloneWithoutInit
</b>
<p>
<div class=slotDescription>
Returns a clone of the receiver but does not call init.
</div>
<a name="Object-compact"></a><b>
compact
</b>
<p>
<div class=slotDescription>
Compact the memory for the object if possible. Returns self.
</div>
<a name="Object-compactState"></a><b>
compactState
</b>
<p>
<div class=slotDescription>
Attempt to compact the memory of the IoState if possible.
</div>
<a name="Object-compare"></a><b>
compare(anObject)
</b>
<p>
<div class=slotDescription>
Returns a number containing the comparison value of the target with anObject.
</div>
<a name="Object-contextWithSlot"></a><b>
contextWithSlot(slotName)
</b>
<p>
<div class=slotDescription>
Returns the first context (starting with the receiver and following the lookup path)
	that contains a slot of the specified name or Nil if none is found.
</div>
<a name="Object-continue"></a><b>
continue
</b>
<p>
<div class=slotDescription>
Skip the rest of the current loop iteration and start on
	the next, if any.
</div>
<a name="Object-coroDo"></a><b>
coroDo(code)
</b>
<p>
<div class=slotDescription>
Creates a new coro to be run in a context of sender and yields to it.
		Returns a coro.
</div>
<a name="Object-coroDoLater"></a><b>
coroDoLater(code)
</b>
<p>
<div class=slotDescription>
Returns a new coro to be run in a context of sender.
		New coro is moved to the top of the yieldingCoros queue to be executed
		when current coro yields.
		<br/>
		Note: run target is <tt>self</tt> (i.e. receiver), not <tt>call sender</tt> as in coroDo.
</div>
<a name="Object-coroFor"></a><b>
coroFor(code)
</b>
<p>
<div class=slotDescription>
Returns a new coro to be run in a context of sender.
</div>
<a name="Object-coroWith"></a><b>
coroWith(code)
</b>
<p>
<div class=slotDescription>
Returns a new coro to be run in a context of receiver.
</div>
<a name="Object-currentCoro"></a><b>
currentCoro
</b>
<p>
<div class=slotDescription>
Returns the currently running coroutine.
</div>
<a name="Object-debugOff"></a><b>
debugOff
</b>
<p>
<div class=slotDescription>
Sets debugWriteln to nil. Returns self.
</div>
<a name="Object-debugOn"></a><b>
debugOn
</b>
<p>
<div class=slotDescription>
Sets debugWriteln to writeln. Returns self.
</div>
<a name="Object-debugWriteln"></a><b>
debugWriteln
</b>
<p>
<div class=slotDescription>
Method for writing debug messages (nil/writeln by default)
</div>
<a name="Object-deprecatedWarning"></a><b>
deprecatedWarning(optionalNewName)
</b>
<p>
<div class=slotDescription>
Prints a warning message that the current method is deprecated.
	If optionalNewName is supplied, the warning will suggest using that instead.
	Returns self.
</div>
<a name="Object-do"></a><b>
do(expression)
</b>
<p>
<div class=slotDescription>
Evaluates the message in the context of the receiver. Returns self.
</div>
<a name="Object-doFile"></a><b>
doFile(pathString)
</b>
<p>
<div class=slotDescription>
Evaluates the File in the context of the receiver. Returns the result.
	pathString is relative to the current working directory.
</div>
<a name="Object-doMessage"></a><b>
doMessage(aMessage, optionalContext)
</b>
<p>
<div class=slotDescription>
Evaluates the message object in the context of the receiver.
	Returns the result. optionalContext can be used to specific the locals
	context in which the message is evaluated.
</div>
<a name="Object-doRelativeFile"></a><b>
doRelativeFile(pathString)
</b>
<p>
<div class=slotDescription>
Evaluates the File in the context of the receiver. Returns the result. 
		pathString is relative to the file calling doRelativeFile. (Duplicate of relativeDoFile)
</div>
<a name="Object-doString"></a><b>
doString(aString)
</b>
<p>
<div class=slotDescription>
Evaluates the string in the context of the receiver. Returns the result.
</div>
<a name="Object-doURL"></a><b>
doURL(urlString)
</b>
<p>
<div class=slotDescription>
Fetches the URL and evals it in the context of the receiver.
</div>
<a name="Object-evalArg"></a><b>
evalArg(expression)
</b>
<p>
<div class=slotDescription>
The '' method evaluates the argument and returns the result.
</div>
<a name="Object-evalArgAndReturnNil"></a><b>
evalArgAndReturnNil(expression)
</b>
<p>
<div class=slotDescription>
Evaluates the argument and returns nil.
</div>
<a name="Object-evalArgAndReturnSelf"></a><b>
evalArgAndReturnSelf(expression)
</b>
<p>
<div class=slotDescription>
Evaluates the argument and returns the target.
</div>
<a name="Object-for"></a><b>
for(&lt;counter&gt;, &lt;start&gt;, &lt;end&gt;, &lt;do message&gt;)
</b>
<p>
<div class=slotDescription>
A for-loop control structure. See the io Programming Guide for a full description.
</div>
<a name="Object-foreach"></a><b>
foreach([name,] value, message)
</b>
<p>
<div class=slotDescription>
For each slot, set name to the slot's
name and value to the slot's value and execute message. Examples:
<p>
<pre>
myObject foreach(n, v,
	writeln("slot ", n, " = ", v type)
)

myObject foreach(v,
	writeln("slot type ", v type)
)
</pre>
</div>
<a name="Object-foreachSlot"></a><b>
foreachSlot(slotName, slotValue, code)
</b>
<p>
<div class=slotDescription>
Iterates over all the slots in a receiver. Provides slotValue (non-activated)
  along with slotName. Code is executed in context of sender. <tt>slotName</tt> and <tt>slotValue</tt>
  become visible in the receiver (no Locals created! Maybe, it is not the best decision).
  <br/>
  <pre>
  Io> thisContext foreachSlot(n, v, n println)
  Lobby
  Protos
  exit
  forward
  n
  v
  ==> false
  </pre>
</div>
<a name="Object-forward"></a><b>
forward
</b>
<p>
<div class=slotDescription>
Called when the receiver is sent a message it doesn't recognize.
Default implementation raises an "Object doesNotRespond" exception.
Subclasses can override this method to implement proxies or special error handling.
<p>
Example:
<p>
<pre>
myProxy forward = method(
	messageName := thisMessage name
	arguments := thisMessage arguments
	myObject doMessage(thisMessage)
)
</pre>
</div>
<a name="Object-getLocalSlot"></a><b>
getLocalSlot(slotNameString)
</b>
<p>
<div class=slotDescription>
Returns the value of the slot named slotNameString
	(not looking in the object's protos) or nil if no such slot is found.
</div>
<a name="Object-getSlot"></a><b>
getSlot(slotNameString)
</b>
<p>
<div class=slotDescription>
Returns the value of the slot named slotNameString
	(following the lookup path) or nil if no such slot is found.
</div>
<a name="Object-handleActorException"></a><b>
handleActorException(exception)
</b>
<p>
<div class=slotDescription>
Callback for handling exceptions during asynchronous message processing.
	<br/>
	Default value: method(e, e showStack)
</div>
<a name="Object-hasLocalSlot"></a><b>
hasLocalSlot(slotNameString)
</b>
<p>
<div class=slotDescription>
Returns true if the slot exists in the receiver or false otherwise.
</div>
<a name="Object-hasProto"></a><b>
hasProto(anObject)
</b>
<p>
<div class=slotDescription>
Returns true if anObject is found in the proto path of the target, false otherwise.
</div>
<a name="Object-hasSlot"></a><b>
hasSlot(name)
</b>
<p>
<div class=slotDescription>
Returns <tt>true</tt> if slot is found somewhere in the inheritance chain 
  (including receiver itself).
</div>
<a name="Object-if"></a><b>
if(&lt;condition&gt;, &lt;trueMessage&gt;, &lt;optionalFalseMessage&gt;)
</b>
<p>
<div class=slotDescription>
Evaluates trueMessage if condition evaluates to a non-Nil.
	Otherwise evaluates optionalFalseMessage if it is present.
	Returns the result of the evaluated message or Nil if none was evaluated.
</div>
<a name="Object-ifDebug"></a><b>
ifDebug(code)
</b>
<p>
<div class=slotDescription>
Executes code if debugWriteln is not nil.
</div>
<a name="Object-ifError"></a><b>
ifError
</b>
<p>
<div class=slotDescription>
Does nothing, returns self.
</div>
<a name="Object-ifNil"></a><b>
ifNil(arg)
</b>
<p>
<div class=slotDescription>
Does nothing, returns self.
</div>
<a name="Object-ifNilEval"></a><b>
ifNilEval(arg)
</b>
<p>
<div class=slotDescription>
Does nothing, returns self.
</div>
<a name="Object-ifNonNil"></a><b>
ifNonNil(arg)
</b>
<p>
<div class=slotDescription>
Evaluates argument and returns self.
</div>
<a name="Object-ifNonNilEval"></a><b>
ifNonNilEval(arg)
</b>
<p>
<div class=slotDescription>
Evaluates argument and returns the result.
</div>
<a name="Object-in"></a><b>
in(aList)
</b>
<p>
<div class=slotDescription>
Same as: aList contains(self)
</div>
<a name="Object-inlineMethod"></a><b>
inlineMethod
</b>
<p>
<div class=slotDescription>
Creates a method which is executed directly in a receiver (no Locals object is created).
  <br/>
  <pre>
  Io> m := inlineMethod(x := x*2)
  Io> x := 1
  ==> 1
  Io> m
  ==> 2
  Io> m
  ==> 4
  Io> m
  ==> 8
  </pre>
</div>
<a name="Object-isActivatable"></a><b>
isActivatable
</b>
<p>
<div class=slotDescription>
Returns true if the receiver is activatable, false otherwise.
</div>
<a name="Object-isError"></a><b>
isError
</b>
<p>
<div class=slotDescription>
Returns false if not an error.
</div>
<a name="Object-isIdenticalTo"></a><b>
isIdenticalTo(aValue)
</b>
<p>
<div class=slotDescription>
Returns true if the receiver is identical to aValue, false otherwise.
</div>
<a name="Object-isKindOf"></a><b>
isKindOf(anObject)
</b>
<p>
<div class=slotDescription>
Returns true if anObject is in the receiver's ancestors.
</div>
<a name="Object-isLaunchScript"></a><b>
isLaunchScript
</b>
<p>
<div class=slotDescription>
Returns true if the current file was run on the command line. Io's version of Python's __file__ == "__main__"
</div>
<a name="Object-isNil"></a><b>
isNil
</b>
<p>
<div class=slotDescription>
Returns false.
</div>
<a name="Object-isTrue"></a><b>
isTrue
</b>
<p>
<div class=slotDescription>
Returns true.
</div>
<a name="Object-justSerialized"></a><b>
justSerialized(stream)
</b>
<p>
<div class=slotDescription>
Writes serialized representation to a SerializationStream. Returns stream contents. 
  [This is unintended side effect! Returned value may change in the future.]
</div>
<a name="Object-launchFile"></a><b>
launchFile(pathString)
</b>
<p>
<div class=slotDescription>
Eval file at pathString as if from the command line in its folder.
</div>
<a name="Object-lazySlot"></a><b>
lazySlot(code)
</b>
<p>
<div class=slotDescription>
Defines a slot with a lazy initialization code. 
  Code is run only once: the first time slot is accessed. 
  Returned value is stored in a regular slot.
  <br/>
  <pre>
  Io> x := lazySlot("Evaluated!" println; 17)
  Io> x
  Evaluated!
  ==> 17
  Io> x
  ==> 17
  Io> x
  ==> 17
  </pre>
  <br/>
  Another form is <tt>lazySlot(name, code)</tt>:
  <br/>
  <pre>
  Io> lazySlot("x", "Evaluated!" println; 17)
  Io> x
  Evaluated!
  ==> 17
  Io> x
  ==> 17
  Io> x
  ==> 17
  </pre>
</div>
<a name="Object-lexicalDo"></a><b>
lexicalDo(expression)
</b>
<p>
<div class=slotDescription>
Evaluates the message in the context of the receiver.
	The lexical context is added as a proto of the receiver while the argument is evaluated.
	Returns self.
</div>
<a name="Object-list"></a><b>
list(...)
</b>
<p>
<div class=slotDescription>
Returns a List containing the arguments.
</div>
<a name="Object-localsForward"></a><b>
localsForward
</b>
<p>
<div class=slotDescription>
CFunction used by Locals prototype for forwarding.
</div>
<a name="Object-localsUpdateSlot"></a><b>
localsUpdateSlot(slotNameString, valueObject)
</b>
<p>
<div class=slotDescription>
Local's version of updateSlot mthod.
</div>
<a name="Object-loop"></a><b>
loop(expression)
</b>
<p>
<div class=slotDescription>
Keeps evaluating message until a break.
</div>
<a name="Object-markClean"></a><b>
markClean
</b>
<p>
<div class=slotDescription>
Cleans object's slots.
</div>
<a name="Object-memorySize"></a><b>
memorySize
</b>
<p>
<div class=slotDescription>
Return the amount of memory used by the object.
</div>
<a name="Object-memorySizeOfState"></a><b>
memorySizeOfState
</b>
<p>
<div class=slotDescription>
Returns the number of bytes in the IoState
	(this may not include memory allocated by C libraries).
</div>
<a name="Object-message"></a><b>
message(expression)
</b>
<p>
<div class=slotDescription>
Return the message object for the argument or Nil if there is no argument.
	Note: returned object is a mutable singleton. Use "message(foo) clone" if
  you wish to modify it.
</div>
<a name="Object-method"></a><b>
method(args..., body)
</b>
<p>
<div class=slotDescription>
Creates a method. 
	<tt>args</tt> is a list of formal arguments (can be empty). <br/>
	<tt>body</tt> is evaluated in the context of Locals object.<br/>
	Locals' proto is a message receiver (i.e. self).
	<br/>
	Slot with a method is <em>activatable</em>. Use getSlot(name) to retrieve 
	method object without activating it (i.e. calling).
	<br/>
	See also <tt>Object block</tt>.
</div>
<a name="Object-newSlot"></a><b>
newSlot(slotName, aValue)
</b>
<p>
<div class=slotDescription>
Creates a getter and setter for the slot with the name slotName
	and sets its default value to aValue. Returns self. For example,
	newSlot("foo", 1) would create slot named foo with the value 1 as well as a setter method setFoo().
</div>
<a name="Object-not"></a><b>
not
</b>
<p>
<div class=slotDescription>
Returns nil.
</div>
<a name="Object-or"></a><b>
or(arg)
</b>
<p>
<div class=slotDescription>
Returns true.
</div>
<a name="Object-ownsSlots"></a><b>
ownsSlots
</b>
<p>
<div class=slotDescription>
A debug method.
</div>
<a name="Object-pSlots"></a><b>
pSlots
</b>
<p>
<div class=slotDescription>
PDB extension to set a list of slots to persist with PDB.
Creates the specified slots using newSlot and sets them to nil.
</div>
<a name="Object-pause"></a><b>
pause
</b>
<p>
<div class=slotDescription>
Removes current coroutine from the yieldingCoros queue and
	yields to another coro. Exits if no coros left.
	<br/>
	See Coroutine documentation for more details.
</div>
<a name="Object-perform"></a><b>
perform(methodName, &lt;arg1&gt;, &lt;arg2&gt;, ...)
</b>
<p>
<div class=slotDescription>
Performs the method corresponding to methodName with the arguments supplied.
</div>
<a name="Object-performWithArgList"></a><b>
performWithArgList(methodName, argList)
</b>
<p>
<div class=slotDescription>
Performs the method corresponding to methodName with the arguments in the argList.
</div>
<a name="Object-persist"></a><b>
persist
</b>
<p>
<div class=slotDescription>
Force immediate persistence of this object with PDB.
</div>
<a name="Object-persistData"></a><b>
persistData
</b>
<p>
<div class=slotDescription>
Force immediate persistence of this object's serialized form (using asSerialization)
into PDB, if possible.
</div>
<a name="Object-persistMetaData"></a><b>
persistMetaData
</b>
<p>
<div class=slotDescription>
Force immediate persistence of this object's type data into PDB
</div>
<a name="Object-persistSlots"></a><b>
persistSlots
</b>
<p>
<div class=slotDescription>
Force immediate persistence of this object's dirty slots into PDB.
</div>
<a name="Object-ppid"></a><b>
ppid
</b>
<p>
<div class=slotDescription>
This PDB extension returns a unique identifier for this object and registers it
for persistence with PDB.
</div>
<a name="Object-prependProto"></a><b>
prependProto(anObject)
</b>
<p>
<div class=slotDescription>
Prepends anObject to the receiver's proto list. Returns self.
</div>
<a name="Object-print"></a><b>
print
</b>
<p>
<div class=slotDescription>
Prints a string representation of the object. Returns Nil.
</div>
<a name="Object-println"></a><b>
println
</b>
<p>
<div class=slotDescription>
Same as print, but also prints a new line. Returns self.
</div>
<a name="Object-proto"></a><b>
proto
</b>
<p>
<div class=slotDescription>
Same as; method(self protos first)
</div>
<a name="Object-protos"></a><b>
protos
</b>
<p>
<div class=slotDescription>
Returns a copy of the receiver's protos list.
</div>
<a name="Object-raiseIfError"></a><b>
raiseIfError
</b>
<p>
<div class=slotDescription>
Does nothing, returns self.
</div>
<a name="Object-relativeDoFile"></a><b>
relativeDoFile(pathString)
</b>
<p>
<div class=slotDescription>
Evaluates the File in the context of the receiver. Returns the result. 
		pathString is relative to the file calling doRelativeFile. (Duplicate of doRelativeFile)
</div>
<a name="Object-removeAllProtos"></a><b>
removeAllProtos
</b>
<p>
<div class=slotDescription>
Removes all of the receiver's protos. Returns self.
</div>
<a name="Object-removeAllSlots"></a><b>
removeAllSlots
</b>
<p>
<div class=slotDescription>
Removes all of the receiver's slots. Returns self.
</div>
<a name="Object-removeProto"></a><b>
removeProto(anObject)
</b>
<p>
<div class=slotDescription>
Removes anObject from the receiver's proto list if it
	is present. Returns self.
</div>
<a name="Object-removeSlot"></a><b>
removeSlot(slotNameString)
</b>
<p>
<div class=slotDescription>
Removes the specified slot (only) in the receiver if it exists. Returns self.
</div>
<a name="Object-resend"></a><b>
resend
</b>
<p>
<div class=slotDescription>
Send the message used to activate the current method to the Object's proto.
  For example:
  <pre>
  Dog := Mammal clone do(
    init := method(
  	  resend
    )
  )
  </pre>
	Calling Dog init will send an init method to Mammal, but using the Dog's context.
</div>
<a name="Object-return"></a><b>
return(anObject)
</b>
<p>
<div class=slotDescription>
Return anObject from the current execution block.
</div>
<a name="Object-returnIfError"></a><b>
returnIfError
</b>
<p>
<div class=slotDescription>
Does nothing, returns self.
</div>
<a name="Object-returnIfNonNil"></a><b>
returnIfNonNil
</b>
<p>
<div class=slotDescription>
Returns the receiver from the current execution block if it is non nil.
	Otherwise returns the receiver locally.
</div>
<a name="Object-self"></a><b>
self
</b>
<p>
<div class=slotDescription>
Returns self.
</div>
<a name="Object-serialized"></a><b>
serialized
</b>
<p>
<div class=slotDescription>
Returns a serialized representation of the receiver.
  <br/>
  <pre>
  Io> Object clone do(x:=1) serialized
  ==> Object clone do(
  	x := 1
  )
  </pre>
</div>
<a name="Object-serializedSlots"></a><b>
serializedSlots(stream)
</b>
<p>
<div class=slotDescription>
Writes all slots to a stream.
</div>
<a name="Object-serializedSlotsWithNames"></a><b>
serializedSlotsWithNames(names, stream)
</b>
<p>
<div class=slotDescription>
Writes selected slots to a stream.
</div>
<a name="Object-setIsActivatable"></a><b>
setIsActivatable(aValue)
</b>
<p>
<div class=slotDescription>
When called with a non-Nil aValue, sets the object
	to call its activate slot when accessed as a value. Turns this behavior
	off if aValue is Nil. Only works on Objects which are not Activatable
	Primitives (such as CFunction or Block). Returns self.
</div>
<a name="Object-setPpid"></a><b>
setPpid
</b>
<p>
<div class=slotDescription>
PDB extension to set the value returned by ppid.
</div>
<a name="Object-setProto"></a><b>
setProto(anObject)
</b>
<p>
<div class=slotDescription>
Sets the first proto of the receiver to anObject, replacing the
	current one, if any. Returns self.
</div>
<a name="Object-setProtos"></a><b>
setProtos(aList)
</b>
<p>
<div class=slotDescription>
Replaces the receiver's protos with a copy of aList. Returns self.
</div>
<a name="Object-setSlot"></a><b>
setSlot(slotNameString, valueObject)
</b>
<p>
<div class=slotDescription>
Sets the slot slotNameString in the receiver to
	hold valueObject. Returns valueObject.
</div>
<a name="Object-setSlotWithType"></a><b>
setSlotWithType(slotNameString, valueObject)
</b>
<p>
<div class=slotDescription>
Sets the slot slotNameString in the receiver to
	hold valueObject and sets the type slot of valueObject
	to be slotNameString. Returns valueObject.
</div>
<a name="Object-shallowCopy"></a><b>
shallowCopy
</b>
<p>
<div class=slotDescription>
Returns a shallow copy of the receiver.
</div>
<a name="Object-shouldPersistByDefault"></a><b>
shouldPersistByDefault
</b>
<p>
<div class=slotDescription>
PDB boolean flag indicating whether this object should be considered for persistence
when persistence has not been specifically requested by calling ppid() or PDB addObjectToPersist.
Always false by default for Object.
</div>
<a name="Object-slotDescriptionMap"></a><b>
slotDescriptionMap
</b>
<p>
<div class=slotDescription>
Returns raw map of slot names and short values' descriptions.
  See also <tt>Object slotSummary</tt>.
</div>
<a name="Object-slotNames"></a><b>
slotNames
</b>
<p>
<div class=slotDescription>
Returns a list of strings containing the names of the
	slots in the receiver (but not in its lookup path).
</div>
<a name="Object-slotSummary"></a><b>
slotSummary
</b>
<p>
<div class=slotDescription>
Returns a formatted <tt>slotDescriptionMap</tt>.
  <br/>
  <pre>
  Io> slotSummary
  ==>  Object_0x30c590:
    Lobby            = Object_0x30c590
    Protos           = Object_0x30c880
    exit             = method(...)
    forward          = method(...)
  </pre>
</div>
<a name="Object-slotValues"></a><b>
slotValues
</b>
<p>
<div class=slotDescription>
Returns a list of the values held in the slots of the receiver.
</div>
<a name="Object-stopStatus"></a><b>
stopStatus
</b>
<p>
<div class=slotDescription>
Returns the internal IoState->stopStatus.
</div>
<a name="Object-super"></a><b>
super(aMessage)
</b>
<p>
<div class=slotDescription>
Sends the message aMessage to the receiver's proto with the context of self. Example:
	<pre>
	self test(1, 2)   // performs test(1, 2) on self
	super(test(1, 2)) // performs test(1, 2) on self proto but with the context of self
	</pre>
</div>
<a name="Object-switch"></a><b>
switch(&lt;key1&gt;, &lt;expression1&gt;, &lt;key2&gt;, &lt;expression2&gt;, ...)
</b>
<p>
<div class=slotDescription>
Execute an expression depending on the value of the caller. (This is an equivalent to C switch/case)
	<code>
	hour := Date hour switch(
		12, "midday",
		0, "midnight",
		17, "teatime",
		Date hour asString
	)
	</code>
</div>
<a name="Object-thisContext"></a><b>
thisContext
</b>
<p>
<div class=slotDescription>
Synonym to self.
</div>
<a name="Object-thisLocalContext"></a><b>
thisLocalContext
</b>
<p>
<div class=slotDescription>
Returns current locals.
</div>
<a name="Object-thisMessage"></a><b>
thisMessage
</b>
<p>
<div class=slotDescription>
Returns the calling message (i.e. thisMessage itself, huh).
</div>
<a name="Object-try"></a><b>
try(code)
</b>
<p>
<div class=slotDescription>
Executes particular code in a new coroutine.
		Returns exception or nil if no exception is caught.
		<br/>
		See also documentation for Exception catch and pass.
</div>
<a name="Object-type"></a><b>
type
</b>
<p>
<div class=slotDescription>
Returns a string containing the name of the type of Object (Number, String, etc).
</div>
<a name="Object-uniqueHexId"></a><b>
uniqueHexId
</b>
<p>
<div class=slotDescription>
Returns uniqueId in a hexadecimal form (with a "0x" prefix)
  <pre>
  Io> Object uniqueId
  ==> 3146784
  Io> Object uniqueHexId
  ==> 0x300420
  </pre>
</div>
<a name="Object-uniqueId"></a><b>
uniqueId
</b>
<p>
<div class=slotDescription>
Returns a Number containing a unique id for the receiver.
</div>
<a name="Object-unpersist"></a><b>
unpersist
</b>
<p>
<div class=slotDescription>
PDB extension to populate this object with the data associated with this object's ppid from PDB.
</div>
<a name="Object-updateSlot"></a><b>
updateSlot(slotNameString, valueObject)
</b>
<p>
<div class=slotDescription>
Same as setSlot(), but raises an error if the slot does not
	already exist in the receiver's slot lookup path.
</div>
<a name="Object-wait"></a><b>
wait(s)
</b>
<p>
<div class=slotDescription>
Pauses current coroutine for at least <tt>s</tt> seconds.
	<br/>
	Note: current coroutine may wait much longer than designated number of seconds
	depending on circumstances.
</div>
<a name="Object-while"></a><b>
while(&lt;condition&gt;, expression)
</b>
<p>
<div class=slotDescription>
Keeps evaluating message until condition return Nil.
	Returns the result of the last message evaluated or Nil if none were evaluated.
</div>
<a name="Object-write"></a><b>
write(&lt;any number of arguments&gt;)
</b>
<p>
<div class=slotDescription>
Sends a print message to the evaluated result of each argument. Returns Nil.
</div>
<a name="Object-writeln"></a><b>
writeln(&lt;any number of arguments&gt;)
</b>
<p>
<div class=slotDescription>
Same as write() but also writes a return character at the end. Returns Nil.
</div>
<a name="Object-yield"></a><b>
yield
</b>
<p>
<div class=slotDescription>
Yields to another coroutine. Does nothing if yieldingCoros queue is empty.
	<br/>
	See Coroutine documentation for more details.
</div>
</td>
</tr>
</table>
<br><br><br><br><br>
</body>
</html>
